/****************************************************************************
**
** Trolltech hereby grants a license to use the Qt/Eclipse Integration
** plug-in (the software contained herein), in binary form, solely for the
** purpose of creating code to be used with Trolltech's Qt software.
**
** Qt Designer is licensed under the terms of the GNU General Public
** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the
** right to use certain no GPL licensed software under the terms of its GPL
** Exception version 1.2 (http://trolltech.com/products/qt/gplexception).
**
** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** Since we now have the GPL exception I think that the "special exception
** is no longer needed. The license text proposed above (other than the
** special exception portion of it) is the BSD license and we have added
** the BSD license as a permissible license under the exception.
**
****************************************************************************/

#include "embedMultimediaTest.h"

#include <QVBoxLayout>
#include <QPushButton>
#include <QTimer>


#include "playbackwidget.h"


#include "activelogs.h"
#ifdef EMBED_VIDEO_TEST
    #define ENABLE_FILE_LOG
#endif
#include "logmacros.h"

EmbedVideoTest::EmbedVideoTest(QWidget *parent)
    : QWidget(parent)
{
	QVBoxLayout* layout = new QVBoxLayout(this);
	layout->addStretch();
	QPushButton* openLocal = new QPushButton(this);
	openLocal->setText("Open Local");
	layout->addWidget(openLocal);
	layout->addStretch();
	QPushButton* openRemote = new QPushButton(this);
	openRemote->setText("Open Remote");
	layout->addWidget(openRemote );
	layout->addStretch();
	
	setLayout(layout);
		
	connect(openLocal, SIGNAL(clicked(bool)), this, SLOT(handleShowLocal()));	
	
	m_playbackWidget = new PlaybackWidget();
	m_playbackWidget->hide();
	
	connect(openLocal, SIGNAL(clicked(bool)), this, SLOT(handleShowLocal()));
	connect(openRemote, SIGNAL(clicked(bool)), this, SLOT(handleShowRemote()));
	
	//just two quick and dirty connect to hide the playback widget and show this one
	connect(m_playbackWidget->m_hideButton, SIGNAL(clicked(bool)), this, SLOT(showFullScreen()));
	connect(m_playbackWidget->m_hideButton, SIGNAL(clicked(bool)), m_playbackWidget, SLOT(hide()));
}

EmbedVideoTest::~EmbedVideoTest()
{

}


void EmbedVideoTest::handleShowLocal() {
	QDEBUG_ENTER_FN();
	m_playbackWidget->showFullScreen();
	hide();
	
	//with QtMultimedia no need to add a delay to set the new media
	m_playbackWidget->setLocalUrl();
	QDEBUG_EXIT_FN();
}

void EmbedVideoTest::handleShowRemote() {
	QDEBUG_ENTER_FN();
	m_playbackWidget->showFullScreen();
	hide();
	
	//with QtMultimedia no need to add a delay to set the new media
	m_playbackWidget->setRemoteUrl();
	QDEBUG_EXIT_FN();
}
